package com.boco.transnms.server.bo.ibo.workflow;

import java.util.*;

import com.boco.common.util.except.*;

import com.boco.plugins.shark.*;
import com.boco.transnms.common.dto.*;
import com.boco.transnms.common.dto.base.*;
import com.boco.transnms.common.dto.workflow.*;
import com.boco.wmworkflow.attemp.dto.AttempAppSheetForm;

public interface IAttempEngineBO {
    void delSmsSheet(BoActionContext actionContext, String sheetId,String userCuid) throws Exception;
    void modifyFlowPush(BoActionContext actionContext, WfWorkList form, HashMap map)throws UserException;
    void modifyAppFlowPush(BoActionContext actionContext, WfWorkList form, HashMap map)throws UserException;
    void modifyDgnFlowPush(BoActionContext actionContext, WfWorkList form, HashMap map)throws UserException;
    void modifyRplFlowPush(BoActionContext actionContext, WfWorkList form, HashMap map)throws UserException;
    WfWorkList[] getAllProcessInfos(BoActionContext actionContext, String packageId, String processId, Integer processType) throws UserException;
    WfWorkList[] getUserProcessInfos(BoActionContext actionContext,String userId,String processId,Integer processType,String activityId,Integer workflowState)throws UserException ;
    int sendSMSorMail(BoActionContext actionContext, WfWorkList form,Integer isSendSmsAndEmail);
    Sign getSignBySendBackDetailCuid(BoActionContext actionContext, String rplDetailCuid) throws Exception;
    public String[] getUsersArray(BoActionContext actionContext,String usersStr, String activityId) throws Exception;
    public int saveMail(BoActionContext actionContext, String currentUserName, String[] userCuids, String msgTemplate, String sheetId);
    public Map getHastenSheets(BoActionContext actionContext, Integer sheetType) throws Exception;
    String getNextOperator(BoActionContext actionContext, Integer sheetType,Long sheetState,Long direction,String sheetCuid,String nextOperator) throws Exception;
    void setWorkflowLog(BoActionContext actionContext, WfWorkList form, String prsName, String actName) throws UserException;
    DataObjectList getSystemParas(BoActionContext actionContext,String paraClassName) throws UserException;
    Boolean isHasRoleByUser(BoActionContext actionContext, String username, String packageId, String processId, String roleId) throws UserException;
    void modifyAcceptActivityByKey(BoActionContext actionContext, WfWorkList form) throws UserException;
    SharkUser[] getAllUserByRole(BoActionContext actionContext,String roleId,String packageId,String processId) throws UserException;
    String getNextActivityName(Integer sheetType, Long sheetStatus, Long sheetDirection) throws Exception;
    String modifyCreateProcessAndUpdateAttrs(BoActionContext actionContext, String userId, String pkgId, String processId, WfBasicRelevantAttr attrs) throws UserException;
    void modifySetProcRelevantAttr(BoActionContext actionContext, String processKey, String attrKey, String attrValue) throws UserException;
    WfWorkList modifySetCurActivityInfo(BoActionContext actionContext, String userId, String processKey, WfWorkList basicInfo) throws UserException;
    String[] getUserCuidsByUserType(int userType, BoActionContext actionContext, String sheetId) throws Exception;
    String[] checkUsers(String[] relatedUserCuids,String currentUserCuid);
    void modifySetProcRelevantAttr(BoActionContext actionContext, String processKey, HashMap map) throws UserException;
    Organization getOrgByCuid(String orgCuid) throws Exception;
    String getCurActivityKey(BoActionContext actionContext, String userId, String password, String engineName, String processKey) throws Exception;
    String[] getAllProcessIdByPackageId(BoActionContext actionContext, String packageId) throws UserException;
    MailServerCfg[] getAllMailServerCfgs(BoActionContext actionContext) throws Exception;
    void updateUserEmailCfg(BoActionContext actionContext, MailServerCfg dbo) throws Exception;
    void saveUserEmailCfg(BoActionContext actionContext, MailServerCfg dbo) throws Exception;
    DataObjectList getRplSheetByCuid(BoActionContext actionContext, String sheetCuid) throws Exception;
    byte[] getProcessGraph(BoActionContext actionContext, String processKey) throws UserException;
    DataObjectList getApplySheetByCuid(BoActionContext actionContext, String sheetCuid) throws Exception;
    DataObjectList getAttempSheetByCuid(BoActionContext actionContext, String sheetCuid) throws Exception;
    ArrayList getWorkTree(BoActionContext actionContext, SysUser user, String packageId, String processId, Integer processType, String path) throws UserException, Exception;
    DataObjectList getWfInfos(BoQueryContext queryContext, String sql) throws Exception;
    int sendSMS(BoActionContext actionContext, WfWorkList form);
    WfWorkList createSharkInstance(BoActionContext actionContext, String userName, Integer processType, String sheetId,String depCuid);
    WfWorkList createAppSharkInstance(BoActionContext actionContext, String userName, Integer processType);
    WfWorkList createDgnSharkInstance(BoActionContext actionContext, String userName, Integer processType);
    WfWorkList createRplSharkInstance(BoActionContext actionContext, String userName, Integer processType, String sheetId, String depCuid);
    void delWfOutlineBySheetId(BoActionContext actionContext, String sheetId) throws Exception;
    void createAppSharkInsNew(BoActionContext actionContext, String userName, Integer processType, AttempAppSheetForm form, String userCuid, String userDepCuid);
}
